home *** CD-ROM | disk | FTP | other *** search
- This readme describes the implementation details necessary to customize the
- execution of WS2Setup.exe and to properly install base service providers.
-
-
- VENDOR INSTALL DLLS
- -------------------
- Any vendor that wishes to explicitly prevent Microsoft TCP,IPX, SAP and/or
- DNS from being upgraded or installed, or complete installation of their
- own Provider (by calling WSCInstallProvider or WSCInstallNameSpace)
- prior to reboot, or hide the WS295 User Interface, must create a Vendor
- Install Dll as described below:
-
-
- Vendor should create a REG_SZ (string) value named "VendorInstallDll"
- under the \WinSock 2 \ Setup key with the complete path of their
- install dll PRIOR to invoking ws2setup.exe. Ws2setup.exe will load this
- dll and call the following functions if they are found to be exported:
-
- VendorInstallProvider
- ---------------------
- Receives a ptr to the all of the provider configuration functions
- in WS2_32.DLL necessary to install a service provider. Should return number
- of service providers successfully installed, or -1 to indicate error.
- See prototype which follows function descriptions.
-
- VendorInstallNameSpace
- ----------------------
- Receives a ptr to the all of the name space provider configuration functions
- in WS2_32.DLL necessary to install a name space provider. Should return
- number of name space providers successfully installed, or -1 to
- indicate error. See prototype which follows function descriptions.
-
- VendorGetSetupOptions
- ---------------------
- Receives a ptr to a structure of type VENDOR_WS2SETUP_OPTIONS in
- which it can indicate whether they want Microsoft to try to install or
- upgrade Microsoft TCP,IPX,SAP and/or DNS and whether to hide the WS295 setup
- routine UI. See prototype which follows function descriptions.
-
- VendorCompleteWS2Install
- ------------------------
- Receives a LONG, which if 0 indicates successful completion, otherwise
- error. Vendor would typically signal their installer program of the
- result here. See prototype below.
-
-
- Function Prototypes
- ------------------------
- typedef LONG (WSAAPI *PFNWSPROC)();
-
- LONG
- WSAAPI
- VendorInstallProvider(
- int (WSAAPI *pfnWSCDeinstallProvider)(),
- int (WSAAPI *pfnWSCEnumProtocols)(),
- int (WSAAPI *pfnWSCGetProviderPath)(),
- int (WSAAPI *pfnWSCInstallProvider)()
- );
-
- LONG
- WSAAPI
- VendorInstallNameSpace(
- int (WSAAPI *pfnWSCEnableNSProvider)(),
- int (WSAAPI *pfnWSCInstallNameSpace)(),
- int (WSAAPI *pfnWSCUnInstallNameSpace)()
- );
-
- VOID
- WSAAPI
- VendorGetSetupOptions(
- LPVENDOR_WS2SETUP_OPTIONS lpSetupOptions
- );
-
- VOID
- WSAAPI
- VendorCompleteWS2Install(
- LONG lResult
- );
-
-
- Setup.exe will initialize the dwSize field in the following struct
- before calling VendorGetSetupOptions, so vendor dll will know what
- version of struct it is working with. Default values are noted in
- the comments.
-
- typedef struct _VENDOR_WS2SETUP_OPTIONS // Defaults:
- {
- DWORD dwSize; // sizeof (VENDOR_WS2SETUP_OPTIONS)
- DWORD dwInstallMicrosoftTCP; // WS2SETUP_INSTALL_COMPONENT
- DWORD dwInstallMicrosoftIPX; // WS2SETUP_UPGRADE_COMPONENT
- BOOL bShowWS2SetupUI; // TRUE
- DWORD dwInstallMicrosoftDNS; // WS2SETUP_INSTALL_COMPONENT
- DWORD dwInstallMicrosoftSAP; // WS2SETUP_DONT_INSTALL_COMPONENT
- LPCSTR lpszWSock32DllLegalCopyright; // NULL
-
- } VENDOR_WS2SETUP_OPTIONS, FAR *LPVENDOR_WS2SETUP_OPTIONS;
-
-
- The only structure field whose purpose is not obvious from its name is
- lpszWSock32DllLegalCopyright. lpszWSock32DllLegalCopyright can point at 1 or more
- NULL-terminated strings, the last of which is to be terminated with 2 NULL
- characters, i.e. "string1\0string2\0\string3\0\0". This value should be set
- to all of the copyright string(s) of the vendor's proprietary WinSock 1.1
- WSOCK32.DLL(s) (if any) that the vendor wishes to allow WinSock 2 to be forcibly
- installed over.
-
- Normally, WS2Setup.exe will abort if it sees a non-Microsoft copyright string
- in WSOCK32.DLL. If the copyright is non-Microsoft AND any portion of the
- copyright string in WSOCK32.DLL contains the string passed in by the vendor,
- WS2Setup will continue as if it had found a Microsoft copyright string, and
- will not abort.
-
- The defined values to be passed in for WS2SETUP options are
-
- #define WS2SETUP_DONT_INSTALL_COMPONENT 0
- #define WS2SETUP_INSTALL_COMPONENT 1
- #define WS2SETUP_UPGRADE_COMPONENT 2
-
- WS2SETUP_DONT_INSTALL_COMPONENT means do not under any circumstances install
- the microsoft version of this component
-
- WS2SETUP_INSTALL_COMPONENT means install the microsoft version of this
- component if & only if a competing vendor's version of this product is not installed
-
- WS2SETUP_UPGRADE_COMPONENT means upgrade the microsoft version of this
- component if & only if it is already installed (no error otherwise)
-
-
- VSETUP.DLL UTILITY
- ------------------
- Compiling VSETUP.DLL as is provides a stub vendor-setup dll utility that displays dialog
- boxes for each of the four VendorXxx() funcs. This allows vendors to
- install and configure their components within the context of setup.exe.
-
- After compilation, set the VendorInstallDll registry value as shown:
-
- \Winsock2
- \Setup
- VendorInstallDll REG_SZ "<path>\vsetup.dll"
-
- VENDOR README FILES
- -------------------
- Vendors that are redistributing Ws2setup should include a readme describing
- the behavior of their product and the relevant behavior of ws2setup.exe
-
- Microsoft recommends that the following sections from the SDK readme.txt
- in the root directory \WS295SDK be included (or modified as appropriate) in
- your version of readme.txt:
-
- "WS2SETUP.EXE AND MICROSOFT PROXY SERVER WINSOCK PROXY CLIENT",
- "WS2SETUP.EXE AND DCOM'95",
- "UNISTALLING WINSOCK 2"
- and parts of "SETUP WINDOWS 95 RUN-TIME COMPONENTS" as appropriate.
-
-
- REGISTRY SETTINGS AND SERVICE PROVIDER INSTALLATION
- ---------------------------------------------------
- In addition to the guidelines above, transport or "base" service providers
- must configure the registry prior to execution of WS2Setup.exe to register
- the existence of their provider with WinSock 2, as well as to help other vendors
- determine appropriate courses of action in their setup routines.
-
- Installed WinSock 2 service providers can be found in the registry under
- HKEY_LOCAL_MACHINE
- \System
- \CurrentControlSet
- \Services
- \WinSock2
- \Providers
- \INET
- \ProviderName "Foo brand's TCP provider, etc"
- \DECNet
- \ProviderName "Foo brand's DECNet provider, etc"
- \IPX
- \ProviderName "Foo brand's IPX/SPX provider, etc"
-
- (etc.)
-
- where each key under \Providers is derived from the address family
- definitions in WinSock2.h. minus the leading "AF_" (i.e. "AF_INET"
- becomes "INET")
-
- It is the responsibility of the provider to be installed to determine if a
- provider of the same address family is already installed, and to create the
- proper key (if necessary) and set the ProviderName value as appropriate.
- (The value of the ProviderName should be your company name or company and
- product name)
-
- Conversely, a service provider should remove their registry
- ProviderName value as part of a proper uninstall routine.
-